Extremos condicionados de funcións de dúas ou tres variables con unha ou dúas condicións

{{{id=1| #auto %hide html('') var('x,y,z,l,m') @interact def a(funcion =input_box(default=x*y^2), condiciones=input_box(default=[x^2+y^2-10])): cond=False if len(condiciones)==2: if z in condiciones[1].variables(): cond=True if z in funcion.variables() or z in condiciones[0].variables() or cond: if len(condiciones)==2: L=funcion+l*condiciones[0]+m*condiciones[1] sol=solve([diff(L,x)==0,diff(L,y)==0,diff(L,z)==0,diff(L,l)==0,diff(L,m)==0],[x,y,z,l,m]) if len(condiciones)==1: L=funcion+l*condiciones[0] sol=solve([diff(L,x)==0,diff(L,y)==0,diff(L,z)==0,diff(L,l)==0],[x,y,z,l]) else: if len(condiciones)==2: L=funcion+l*condiciones[0]+m*condiciones[1] sol=solve([diff(L,x)==0,diff(L,y)==0,diff(L,l)==0,diff(L,m)==0],[x,y,l,m]) if len(condiciones)==1: L=funcion+l*condiciones[0] sol=solve([diff(L,x)==0,diff(L,y)==0,diff(L,l)==0],[x,y,l]) for i in range(len(sol)): if z in funcion.variables()or z in condiciones[0].variables() or cond: show(sol[i][0:3]) else: show(sol[i][0:2]) ///
funcion 
condiciones 
}}} {{{id=2| /// }}}